unicode big endian是一个英语单词。来源于
乔纳森·斯威夫特的小说
格列佛游记。小说中,小人国为水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方分别被称为Big-endians和Little-endians。
1980年,Danny Cohen在其
著名On Holy Wars and a Plea for Peace
字节该以什么样的顺序传送的争论而引用了该词。
在
计算机科学领域中,
字节序是指存放多字节数据的
字节(byte)的顺序,典型的情况是整数在
内存中的存放方式和
网络传输的传输顺序。Endianness有时候也可以用指位序(bit)。
一般而言,
字节序指示了一个UCS-2
字符的哪个字节存储在低地址。如果LSByte在MSByte的前面,即LSB为低地址,则该
字节序是小端序;反之则是
大端序。
BIG ENDIAN:最低位地址存放高位
字节,可称高位优先,
内存从最低地址开始按顺序存放(高数位数字先写)。最高位
字节放最前面。
LITTLE ENDIAN:最低位地址存放低位
字节,可称低位优先,内存从最低地址开始按顺序存放(低数位数字先写)。最低位字节放最前面。
对于单一的
字节(a byte),大部分
处理器以相同的顺序处理
位元(bit),因此单字节的存放方法和传输方式一般相同。
对于多
字节数据,如整数(32位机中一般占4字节),在不同的
处理器的存放方式主要有两种,以
内存中0x0A0B0C0D的存放方式为例,分别有以下几种方式:
示例中,
最高有效位(MSB, Most Significant Byte)是0x0A 存储在最低的
内存地址处。下一个
字节0x0B存在后面的地址处。正类似于十六进制
字节从左到右的阅读顺序。